iptables |
您所在的位置:网站首页 › iptables 白名单ip段 › iptables |
前言: 境外肉鸡攻击有点多,并业务无境外访问需求,IDC机房网络防火墙无法实现8K多条的china大陆地址导入;为实现仅china大陆地址访问,在业务端口如这里的80,使用iptables防火墙+ipset过滤实现访问控制,对于访问量不大的业务可考虑使用。 如需简单快捷的方式,搜本博“以错误路由方式禁止境外IP来访”篇 (缺点:主机也无法主动请求境外目标了) 创建ipset得到的备份文件,便于批量添加8k条地址创建一个ipset ipset create whitelist hash:net maxelem 1000000 加入一个名单ip ipset add whitelist 9.9.9.9 查看已经ipset配置内容 ipset list Name: whitelist Type: hash:net Revision: 3 Header: family inet hashsize 1024 maxelem 65536 Size in memory: 16816 References: 0 Members: 9.9.9.9![]() 将ipset规则保存到文件 ipset save whitelist -f whitelist.txt 查看备份内容 more whitelist.txt create whitelist hash:net family inet hashsize 1024 maxelem 1000000 add whitelist 9.9.9.9![]() 下载china大陆地址集合并处理格式 curl -# -O http://ftp.apnic.net/stats/apnic/delegated-apnic-latest cat delegated-apnic-latest | awk -F '|' '/CN/&&/ipv4/ {print $4 "/" 32-log($5)/log(2)}'|cat >ip.txt head -n 2 ip.txt 1.0.1.0/24 1.0.2.0/23![]() 设置符合ipset备份文件格式 sed 's/^/&add whitelist /g' ip.txt > add-ip.txt cat add-ip.txt >> whitelist.txt; cp whitelist.txt china_whitelist.txt head -n 4 china_whitelist.txt create whitelist hash:net family inet hashsize 1024 maxelem 65536 add whitelist 9.9.9.9 add whitelist 1.0.1.0/24 add whitelist 1.0.2.0/23![]() 先删除前面创建的ipset ipset destroy whitelist 导入ipset规则 ipset restore -f china_whitelist.txt 查看目前应用的ipset内容 ipset list | head -n 12 Name: whitelist Type: hash:net Revision: 3 Header: family inet hashsize 2048 maxelem 1000000 Size in memory: 126736 References: 0 Members: 202.118.64.0/18 223.212.0.0/15 103.217.56.0/22 150.242.184.0/22 43.246.76.0/22![]() 去除名单ip ipset del whitelist 9.9.9.9 导入完毕禁用centos7firewalld,安装iptables systemctl stop firewalld systemctl disable firewalld yum -y install iptables-services systemctl start iptables systemctl enable iptables 操作 service iptables status service iptables stop service iptables restart iptables -F 先放行SSH,以免无法远程 iptables -I INPUT -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT service iptables save 应用ipset规则实现端口访问白名单,禁止境外ip iptables -A INPUT -p tcp --dport 80 -j DROP iptables -I INPUT -m set --match-set whitelist src -p tcp --dport 80 -j ACCEPTiptables -L -n ![]() 使用国内与境外地址分别测试通达性 curl -I http://ip+端口 如实现预期,保存规则永久生效 service iptables save reboot重启ipset集合消失,并且导致iptables启动失败 因创建的 ipset 存于内存中 解决: yum -y install ipset-service systemctl enable ipset ipset restore -f china_whitelist.txt service ipset save sed -i 's/IPSET_SAVE_ON_STOP="no"/IPSET_SAVE_ON_STOP="yes"/' /etc/sysconfig/ipset-config 带时间的玩法 创建默认ip生效时间为1天的ipset集合 ipset create timeout_list hash:net timeout 86400 ipset add timeout_list 1.9.9.9 #继承集合默认生存时间 ipset add timeout_list 2.9.9.9 timeout 3600 #生存时间为1小时 ipset add timeout_list 3.9.9.9 timeout 0 #生效时间无限 查看 ipset list timeout_list Name: timeout_list ---- Header: family inet hashsize 1024 maxelem 65536 timeout 86400 ----(像redis一样显示时间倒计时) 1.9.9.9 timeout 86372 3.9.9.9 timeout 0 2.9.9.9 timeout 3572![]() iptables -L -n --line-numbers iptables -D INPUT 号码 删除ipset异常 ipset destroy whitelist ipset v7.1: Set cannot be destroyed: it is in use by a kernel component 尝试清空ipset的ip条目再删除 ipset flush 清空成功,但删除操作还是失败 尝试关闭iptables再删除ipset service iptables stop ipset destroy whitelist 删除成功 ipset restore -f china_whitelist.txt service iptables restart 添加连续ip范围到集合 ipset add a_list 1.1.2.1-1.1.2.64 ipset list a_list Name: a_list Members: 1.1.2.2/31 1.1.2.1 1.1.2.16/28 1.1.2.32/27 1.1.2.64 1.1.2.8/29 1.1.2.4/30![]() ipset详解 使用ipset提高iptables的控制效率 - 快乐嘉年华 - 博客园 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |